System and method for creation, distribution, exchange, redemption and tracking of digitally signed electronic coupons

ABSTRACT

This invention refers to a means to generate, distribute, exchange, verify and redeem coupons in a public network environment, such as the Internet. This provides a safe way to create and distribute coupons from a Manufacturer to one or more Retailers, while at the same time giving the user all information corresponding to the coupon features.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] This invention refers to a means to generate, distribute,exchange, verify and redeem coupons in a public network environment,such as the Internet. This provides a safe way to create and distributecoupons from a Manufacturer to one or more Retailers, while at the sametime giving the user all information corresponding to the couponfeatures.

[0003] 2. Prior Art

[0004] Discount coupons come from the real world. They have been usedfor decades by retail centers to attract consumers. They are typicallydistributed in the form of advertisements that have to be cut out byusers and taken to the store.

[0005] With the coming of the Internet as a major commercialdistribution system, the coupon model is being exported to the Internet.A number of Web sites are being established with the purpose ofproviding Internet users with a way to get reductions coupons forInternet stores or for physical retail centers. Either way, most couponsare in fact images that must be printed from the user's printer, thensent via postal mail; just like in the real world.

[0006] Some “virtual coupons” are, in fact, email messages sent to auser's mailbox. To take advantage of the offer, the user has to go tothe URL that is referenced in the coupon. In some specific cases, theuser is required to give a password to provide proof of his right to getthe reduction associated with the coupon.

[0007] In the first case (when coupons are printed), it makes themhardly usable for purchasing online. Since the coupon must first be sentvia postal mail, it is impossible to buy and take advantage of the offerat the same time.

[0008] In the latter case, there is no easy way to make sure that theuser who redeems a coupon, is the one who received that coupon in thefirst place. With systems using passwords, the user has to rememberevery password associated with the Digital Coupon. Besides, there is nostandard way to inform the user of the validity period of the coupon. Itmust be written somewhere in the message.

[0009] Some methods do exist to implement coupons systems in a networkenvironment. Couponing on the Internet has moved from clickable images,password protected discounts and finally transfer of informationallowing a server (the Coupon Server) to recognize a client (theInternet user).

[0010] A clickable image points to a page from the Merchant Server thatimmediately proposes the discount. The client is expected to buy fromthe moment he sees the advertisement. There is no information that issaved on the client side to remind him of the discount.

[0011] The password protected discount focuses on knowledge, rather thanpossession.

[0012] A message is sent to users by email or other means ofcommunication. The message contains a description of the discount and apassword used as an authentication means that is to be written atcheckout on a virtual store in order to get the corresponding pricereduction.

[0013] In particular, some of these methods consist of data beingtransferred from a coupon server to a client. However, there iscurrently no system that truly implements all the functionality of areal world couponing environment. In particular:

[0014] All the information related to the coupon (i.e. date of beginningand end of validity, nature and amount of discount, descriptions of theproducts) is not included in the data being transferred from the CouponServer to the client.

[0015] It is not possible for a manufacturer to issue digital couponsand have other retailers accept them at redemption while stillcontrolling in real time the flow of redeemed coupons.

[0016] It would accordingly be advantageous to provide a system toanswer these needs so that:

[0017] Users get to know all information they need about coupons,digital coupons value can be easily evaluated, and coupons themselvescan be exchanged among users.

[0018] Manufacturers can create and finance coupons related to theirproducts. Such coupons will be accepted by Digital Merchants (i.e.,Retailers) already proposing their products. Manufacturers will approvethe redemption of every Digital Coupon, and get information about theirRetailers performance. The Manufacturer gets the assurance that couponscannot be forged.

[0019] To obtain a visual description of the discount, in the form of animage embedded in the coupon.

[0020] It would also be advantageous to provide innovations pertainingto the digital nature of the medium being used:

[0021] Uniqueness of every user: making sure that every user has aunique Identifier.

[0022] Uniqueness of every coupon created: making sure that two couponsgenerated have two different Serial Numbers. Redeemed Coupons will beaccepted on a first come, first served basis.

[0023] Traceability of coupons: getting to know who download the couponsand who redeems them, on the basis of the user's Identifier.

[0024] Flexibility of discounting rules: allowing the Manufacturer tocreate a coupon whose characteristics vary over time (or any otherparameters), such as a Digital Coupon whose value decreases over time.

BRIEF DESCRIPTION OF THE DRAWINGS

[0025]FIG. 1 is a schematic representation of procedures and interactionbetween a digital coupon book, a digital coupon server and a digitalcoupon manager.

[0026]FIG. 2 is a schematic representation of the steps utilized forcreation of a client account.

[0027]FIG. 3 is a schematic representation of the steps for setting up amerchant system.

[0028]FIG. 4 is a schematic representation of the steps for creating adigital coupon template.

[0029]FIG. 5 is a schematic representation of the format of a digitalcoupon.

[0030]FIG. 6 is a schematic representation of the method fortransferring a digital coupon template from a manufacturer toretailer(s).

[0031]FIG. 7 is a schematic representation of a method for transferringa digital coupon template to a directory.

[0032]FIG. 8 is a flow diagram of the downloading of a digital coupon bya user or client.

[0033]FIG. 9 is a schematic representation of the steps for manipulatinga digital coupon by the client/user.

[0034]FIG. 10 is a flow diagram illustrating the steps for redeeming adigital coupon.

[0035]FIG. 11 is a flow diagram outlining the buy-out process during aredemption session.

[0036]FIG. 12 is a schematic representation for analysis of sessioninformation.

SUMMARY OF THE INVENTION

[0037] This invention relates to a method to create and sign digitalrepresentations of uniquely identified coupons for a plurality of usersincluding providing a digital coupon having a serial number, informationabout a manufacturer, a date of start of validity, a date of end ofvalidity, specific location information for redemption, association witha product or a range of products, information about the product beingdiscounted, discount rules including, but not limited to, amount,currency and type of discount; and embedding a digital signature in thecoupon.

[0038] This invention also relates to a method of distributing DigitalCoupons over the Internet or over any network using a client and servermechanism including generating a coupon file, signing the digital couponfile; and send the digital coupon to a selected recipient through anInternet protocol.

[0039] This invention further relates to a method for a user to verifyintegrity and validity of a selected Digital Coupon at any selected timeincluding presenting to a server responsible for digital Couponinformation relevant to price reduction, obtaining a confirmation ofvalidity; generating an error message by the server; and sending theerror message to the recipient if the Digital Coupon is not valid.

[0040] This invention also relates to a method for a user to redeem aDigital Coupon at a desired moment of a buying process includingverifying by a coupon server validity of a specific coupon, storinginformation regarding said Digital Coupon in a database, subtracting aprice of an item being ordered from the discount specified in theDigital Coupon; and generating an order regarding the purchase made bythe user.

DETAILED DESCRIPTION

[0041] It will be appreciated that the following description is intendedto refer to specific embodiments of the invention selected forillustration in the drawings and is not intended to define or limit theinvention, other than in the appended claims.

[0042] Interaction Between Entities

[0043] A system for the creation, distribution and redemption of digitalcoupons is represented in FIG. 1. In a preferred embodiment, the Clientsystem consists of a personal computer or a mobile phone or anyWeb-enabled device.

[0044] A specific application, containing all users digital coupons, ison the client side.

[0045] This will be referred to as the Digital Coupon Book (DCB).

[0046] The Digital Coupon Server (DCS) refers to software dedicated todigital coupon template creation and storage in a database, digitalcoupon creation and transfer at a client's request.

[0047] The Digital Coupon Manager (DCM) refers to software capable ofcomputing coupons downloaded and redeemed, gathering statistical datawhich is displayed in the form of graphs. It is also capable ofanalyzing buying patterns among users of digital coupons and to proposea coupon policy taking advantage of best downloaded and redeemedinformation.

[0048] On the merchant site, the system is capable of getting resultsfrom the Digital Coupon Server and to modify the price of productsbought by the client accordingly. It interacts with the merchant serversoftware through whatever means is used to keep the context of a buyingsession, such as cookies or a session ID kept in hidden fields of aform. We refer to this specific application as the “MerchantSite-Session Manager.”

[0049] In the scope of this invention, we will refer to the“Manufacturer” as the entity in charge of coupon creation, and in chargeof financing the discount applied with the digital coupon.

[0050] The Retailer is referred to as the entity to which DigitalCoupons are redeemed.

[0051] The Manufacturer and the Retailer may refer to the same entity.However, this is not a mandatory condition.

[0052] Coupon Characteristics

[0053] A digital coupon is defined as a set of data describing featuresof the coupon such as date of start and end of validity, a uniqueidentifier, and a means to prevent forgery of any part of the data. Thecoupon can also contain an image, which is extracted and displayed byappropriate software.

[0054] The preferred embodiment of a digital coupon system makes use ofa digital signature, such as RSA or DSS.

[0055] In this embodiment, the coupon is a digitally signed filecontaining information about the Manufacturer (the entity that createsthe digital coupon), the retailers (the entities that accepts couponscreated by the Manufacturer), information about the discount type andnature, discount rules applied to a set of items.

[0056] Valid coupons are recognized with a common extension to theirname such as .cpn.

[0057] Valid coupons are associated with a MIME extension, such asapplication/x-ca-digitalcoupon to allow for specific processing byappropriate software (for example, a browser or a client emailapplication).

[0058] Information relevant to a digital coupon contains but is notlimited to:

[0059] Name of the coupon: describes in human readable form what thecoupon is about.

[0060] Serial number: uniquely identify and track the coupon.

[0061] If a same digital coupon can be redeemed successfully by severalusers, then the digital coupon is called “non-serialized”, whichindicates that the serial number is not verified at redemption.

[0062] Beginning of validity period: the period from which the digitalcoupon can be redeemed.

[0063] End of validity period: the period from which the digital couponcannot be redeemed anymore.

[0064] The validity period for a digital coupon can be as short as a fewhours or even less.

[0065] Issuing Authority: the name of the online Manufacturer.

[0066] Short description: a short description of the product(s) beingdiscounted or any aspect related to the coupon.

[0067] Long description: a longer description of the products or anyaspect related to the coupon.

[0068] Discount rules: describes the main characteristics of the coupon,such as the corresponding discounted items identifiers, the type (forexample, percentage or nominal) and amount of the discount.

[0069] It is possible to specify that the value of the discount will bedegressive based on the available “time to live” of the coupon, or otherinformation.

[0070] Image: a digital coupon may contain an image, representation ofthe coupon, that can be displayed with a common image viewerapplication.

[0071] Public Key: the public key corresponding to the private key usedto sign the coupon.

[0072] Digital Signature of the image: the image is digitally signedusing the same private key as the one used to sign the data part. Thisfunctionality allows for the image and data to be treated as twoindependent parts. Upon redemption of a digital coupon, only the dataparts need to be exchanged between the client and the server.

[0073] Digital Signature: the digital signature is the result of theencryption of a hash of all the data contained in the file (with theexclusion of the image, which has its own signature) with the privatekey stored on the Manufacturer's database. The hash algorithm may be MD5or SHA-1.

[0074] The Digital Coupon may also contain additional information aboutthe user (such as an email address and a password), which allows morepersonalization for each coupon. In this case, the coupon is created onthe fly for each request by an Internet user.

[0075] Other types of information relating to the user's preferences andtastes can be written in the coupon as well.

[0076] User Account Creation

[0077] In a preferred embodiment, users of the digital coupon systemregister to an online system. At registration, characteristics of theusers are stored in an online database and a unique serial number (a“Member Identifier”) is given to each user.

[0078] In this embodiment, a central Registration Authority is given thetask of attribution of members identifiers.

[0079] The database is used to keep track of user's registration,regardless of the user's way to store it coupons, whether they are kepton a user through a web-based system or with a dedicated application ona client machine.

[0080] This serial number will be sent back to the coupon server forevery download request and every redemption request, which allows forthe server to keep track in a database of downloads and redemptions byeach user, and to gather statistical data.

[0081] From this information, an analysis tool, the coupon managementserver will be able to analyze the shopping habits of the consumer.

[0082] In an alternate embodiment, no previous registration from theuser is needed and it is possible for anybody to obtain and redeemcoupons using various means (including a browser such as InternetExplorer or Netscape) and store them on a local computer such as a PC oron a remote store location. No indication as to the user's pattern ispassed on to the servers.

[0083] Coupon Creation

[0084] Coupon creation and distribution to end users can be performed bya single entity, or by an entity (the Manufacturer) for use by otherentities (Retailers) with which prior commercial agreements have beenset up.

[0085] In a preferred embodiment, the creation of digital couponsincludes software, the digital coupon server which is able to produce atemplate of a digital coupon features, that will then be stored in adatabase.

[0086] During digital coupon creation, aspects relating to thedescription of the coupon are gathered using such graphical interface asa Web browser. A public/private key pair is generated as well as atemplate serial number (SNTemplate) for every template of a digitalcoupon.

[0087] All this information is stored on a database, the SNTemplateserving as a unique identifier. This allows for dynamic creation ofDigital Coupons at download, which gives the possibility to incorporatedata coming from the user (such as a password) and a unique serialnumber.

[0088] A method ensures digital coupon serial number uniqueness amongall digital coupons issuers.

[0089] The digital coupon serial number format results from aconcatenation of the digital coupon Manufacturer Number(SNManufacturer), the digital coupon template number (SNTemplate), andthe digital coupon rank (SNRank).

[0090] Uniqueness among SNManufacturer numbers is guaranteed by acentral issuing Authority. It is, therefore, the role of a RootCoordination System to make sure that no two Manufacturers share thesame number.

[0091] The Root Coordination System hosts tables associatingManufacturers numbers with their corresponding identity.

[0092] Uniqueness of SNTemplates is guaranteed within a ManufacturerDigital Coupon Server system. The central repository database of alldigital coupons templates keeps tracks of all numbers previously issued.New SNTemplates numbers are computed from an increment of the lastissued SNTemplates.

[0093] Uniqueness of a given SNRank is the role of the Digital Couponcreation mechanism.

[0094] In an embodiment of the system, a procedure is provided makinguse of an exclusive semaphore through the use of shared memory to give aunique SNRank, for each digital coupon issued.

[0095] In one embodiment of the invention, digital coupons are nonserialized: the serial number and, thus, the whole coupon file stays thesame (by convention, the serial number can end with 0000).

[0096] A coupon file is generated and served to at the user's request.

[0097] This sort of coupon is not trackable, but it is more suited fordistribution over several distribution networks (such as a floppy disk,or a CD-ROM).

[0098] If the digital coupon is to be distributed to more than one userusing any non-network means, then this digital coupon has to be validfor several users. This is where the concept of a non-serialized digitalcoupon gets useful.

[0099] In another alternate embodiment, digital coupon serial numbersare verified at redemption and, thus, each digital coupon is unique.

[0100] A first practical solution to this problem is to generate digitalcoupon files and sign them at the user's request, that is to say, inreal time.

[0101] This also allows for better personalization of digital coupons,since it is possible, if the template specifies it, to incorporate datacoming from the client requesting the coupon.

[0102] Another alternative is to generate digital coupon files inadvance.

[0103] Digital coupon files created this way are stored under thedirectory name of their corresponding template, which makes digitalcoupon retrieval faster.

[0104] This mode does not allow for personalization. It does, however,increase download speed, since coupons are generated files, and can thenbe delivered as static content, such as HTML pages.

[0105] It is possible for the creator of the coupon template to specifya balance between coupons created on the fly, and coupons stored inadvance for faster download. The proportions can be determined throughan administration server.

[0106] Information specified by the Administrator includes, but is notlimited to, all aspects specified during the definition of a couponformat.

[0107] The Redeem URL is transmitted by Retailers and written down forthe digital coupon template.

[0108] It is the administrator's responsibility to specify the behaviorof the download policy, in particular:

[0109] The maximum number of downloadable coupons: indicates the maximumnumber of digital coupons that will be served to Internet users.

[0110] The maximum number of redeemable coupons: indicates the maximumnumber of digital coupons that will be accepted at redemption.

[0111] It is possible to set 2 different values for both.

[0112] Whether the coupons should be redeemed by the same user thatdownloaded the coupons.

[0113] In a preferred embodiment, the user's Member Identifier iscaptured during the download and redemption process. It is, therefore,possible at redemption to make a comparison between the two numbers onthe basis of the digital coupon serial number.

[0114] Information regarding the gross margin made by selling theproduct may also be written during the creation of the digital coupontemplate. While this information is not useful for the digital couponitself, it is usable later by the Digital Coupon Manager.

[0115] Other types of information (such as the marketing budget devotedto promoting this online campaign) may be written as well.

[0116] Digital coupons may be associated with keywords, thecorresponding information being registered in the database: digitalcoupons will then be searchable at the user's request.

[0117] In a specific part of the embodiment, the administrator of thecoupon server can ask to be warned by email or any other networkprotocol (such as SNMP) when the number of downloaded digital couponsreaches the limit as set during the creation.

[0118] A specific flag, the “status flag”, is also set up as part of thecreation of the digital coupon template. This status flag can be changedat any time by the Merchant Administrator to block the redemption ordownload process. This status flag is also changed automatically by thedigital coupon server system for various reasons such as if the maximumnumber of digital coupons has already been redeemed.

[0119] Coupon Distribution to Retailers and Directories

[0120] One of the prerequisites to exchanging digital coupons between aManufacturer and several Retailers is that all entities use a dedicatedsoftware for transferring and validating the flow of information beingexchanged.

[0121] In a preferred embodiment, a dedicated protocol such as IIOP isused to transfer and validate information from a Manufacturer toselected Retailers.

[0122] The integrity of the information being transferred is maintainedthrough the use of digital signatures. The information being exchangedis encrypted using the Manufacturer private key.

[0123] The information is easily authenticated by all Manufacturershaving registered with the public key.

[0124] The public key of the manufacturer needs to be exchanged andverified between the Manufacturer and selected Retailers by anon-network means such as by telephone or by fax.

[0125] In a preferred embodiment, the Retailers store in their databasesthe digital coupon templates and information necessary to link to theManufacturer for verification. Such information includes but is notlimited to the URL for redemption of the template.

[0126] Coupon Download

[0127] In our preferred embodiment, digital coupons are passed in binaryformat.

[0128] The coupon can be accessed directly from the browser throughhyperlink (URL) referring to a program in charge of dynamic creation ofthe digital coupon by the coupon server.

[0129] As one of ordinary skill will appreciate, it is then possible toembed access to the coupon through an image such as a banner.

[0130] From this aspect, it follows that it is possible for an Internetuser to click on a banner displaying a description of a digital coupon.

[0131] Such banner contains a link to the digital coupon server withinformation concerning the template passed through the GET method.

[0132] It is also possible to access a digital coupon after a purchasehas been made, or as the result of a promotional offer. A hyperlink tothe creation of digital coupon can be installed anywhere.

[0133] Using this information, the digital coupon server is able toinstantiate the corresponding digital coupon. This digital coupon isthen sent back to the user's browser through a selected MIME type (suchas application/x-ca-digitalcoupon) along with registration URL. TheRegistration URL (specified in the header part of the document with aX-Registration field) indicates what is the corresponding digital couponserial number.

[0134] The browser passes all that information to the digital couponbook which is registered on the user's system to treat suchcorresponding MIME types.

[0135] Once the digital coupon is stored on the user's hard drive, theDigital Coupon Book contacts the Digital Coupon Server at the givenRegistration URL to inform that the digital coupon was correctlyreceived and stored on the user's hard drive, and also to inform theserver about the user's Member Identifier.

[0136] The Digital Coupon Server updates the user's information to itsdatabase.

[0137] In an alternate embodiment, no information regarding the user'sMember Identifier is sent back to the Digital Coupon Server.

[0138] The digital coupon is saved as a file on the user's hard drivewith an explicit filename extension (such as .cpn). The digital couponbook may present the user with a choice of a category where that digitalcoupon should be saved. The use of categories gives the user more powerfor managing a selection of coupons from various retailers, and it isthe main reason for a Digital Coupon Book.

[0139] Coupon Management

[0140] A method is described to allow Internet users to manipulatedigital coupons. The term manipulation allows the user to:

[0141] Delete digital coupons

[0142] Verification of digital coupons

[0143] Change the digital coupons names

[0144] Move digital coupons to another category

[0145] Create/Delete/Rename categories

[0146] List digital coupons corresponding to a specific category or to aspecific merchant

[0147] Searching for specific digital coupons

[0148] In a preferred embodiment, the digital coupon refers to a file.The name of the file is the name of the digital coupon, a category (suchas “pets products”) refers to a directory name, and a merchant name isreferenced by a directory as well.

[0149] It is, therefore, possible to apply changes through the filesystem without being architecture dependant.

[0150] It is possible to transfer digital coupons to other Internetusers by email or any other network means.

[0151] Also, it is possible to make a repository of digital couponsavailable to Internet users through the creation of an FTP or Webserver.

[0152] In one embodiment where the digital coupons serial numberuniqueness is not verified during redemption, it is possible forInternet users to transfer them to other Internet users without risk oflosing the benefit of the discount for themselves (assuming otherconditions such as the end of validity period are O.K.).

[0153] In an alternate embodiment, however, where the serial number isverified on the server at redemption, such transfer will increase thechances that somebody else redeems the given digital coupon first. Sinceuniqueness of the coupon is guaranteed during redemption, only the firstuser will be able to successfully redeem the digital coupon. A systemis, therefore, described to help users recognize whether digital couponsare non serialized (in the sense that the serial number is not verified)or serialized (uniqueness of the digital coupon is verified).

[0154] The serial number of the first type of digital coupons ends upwith 0000, which makes them easily recognizable both on the server sideand on the client side.

[0155] The verification of a coupon on the client side is an importantpart of the trust system between Manufacturers, Retailers and Internetusers.

[0156] Using the public key of the image embedded in the data part ofthe digital coupon, it is possible to verify the authenticity of theimage.

[0157] It is also possible to verify the digital signature of thedigital coupon file, which is a necessary step to make sure that thedigital coupon has not been altered in some way.

[0158] Full verification of the digital coupon also includesconfirmation from the entity that created it.

[0159] In an embodiment of the system, it is possible to verify digitalcoupons by making a call to the digital coupon server with the publickey and the serial number of the digital coupon.

[0160] The serial number containing the SNTemplate and the public keyare matched by the digital coupon server on its database of templates.

[0161] If an occurrence with the same public key and the same serialnumber is found within the database, then it is proof that thecorresponding digital coupon has really been instantiated by thisdigital coupon server.

[0162] The verification of a digital coupon is subject to DNS spoofingwhere the Internet user believes the Manufacturer digital coupon serverto be some Web site, but is, in fact, redirected to another Web site.

[0163] A method is proposed to make sure that the verification processis not subject to DNS spoofing: the verification process should takeplace over an SSL connection.

[0164] An embodiment of the system provides a way to search for digitalcoupons on the basis of keywords. A solution is provided on the user'sapplication, the digital coupon that allows for search on a directory ofdigital coupons using keywords. These keywords are then matched againsta database of digital coupons templates. Descriptions of Digital coupontemplates matching the query are returned to the user's digital couponbook, where an instance of that digital coupon can later be saved.

[0165] Specifications Regarding the Discount Rules

[0166] A method is given to express a discount mechanism in a short,precise and extensible way.

[0167] Discount rules are expressed using Name=Value expressions. Theyinclude, but are not limited to, the following expressions:

[0168] A: amount of the discount. This amount represents a percentage ora nominal reduction fee. A=12; T=P represents a 12% reduction. It is arequired parameter (although it is not strictly required if the discountis one where a product is given when several other are purchased).

[0169] T: type. The discount type. It can be P (percentage), N (nominal)which is an amount in money, or B (bundle) which indicates that thediscount is applied if other products of the same type are purchased.

[0170] It is a required parameter and, thus, has no default value.

[0171] C: currency of the discount. Currency is expressed ininternational ISO code. For example USD for American dollars, and FFRfor French Francs. The default if not expressed is the Retailer's website own default currency.

[0172] Q: quantity. For example in “buy 3 apples, get 1 free!” would beexpressed as: Min=3; Q=1; T=B.

[0173] There is no default value.

[0174] CUMUL: cumulative. Indicates whether the digital coupon discountis cumulative with other discounts. The Max parameter (see below)indicates the maximum number of cumulative Digital Coupons discountsthat may be applied.

[0175] Values are Y (yes) or N (no). Default value is Y.

[0176] Min: minimum. Indicates the minimum number of products or theleast amount of money that needs to be spent before the discountapplies.

[0177] Max: maximum: indicates the maximum number of digital couponsthat can be redeemed during the same buying process. The default isthere are no limits.

[0178] CAT: category. Indicates if the discount is applicable to theproduct ID that is mentioned in the coupon (P), or to any purchasewithin the store (G).

[0179] An example of such a discount rule might be: T=N; A=8; Min=100;CUMUL=N; C=USD; Cat=G

[0180] Which means: “Apply a $8 discount on any purchase of $100 or moreon the store. This discount is not cumulative”.

[0181] If an identifier is not needed, it won't be part of the discountrules, which implies that discount rules will be kept as small aspossible.

[0182] Redemption of a Coupon

[0183] The system includes a way for a user to redeem a coupon and,thus, take advantage of a discount during shopping at an online shoppingcenter.

[0184] A typical redemption session is built upon 3 consecutive steps:

[0185] Verification: tests are performed to ensure validity of thedigital coupon.

[0186] Locking: the digital coupon is valid and inserted within a user'ssession, but the buyout process has not been completed by the Internetuser.

[0187] Redeem: the digital coupon has been taken into account atcheckout and is not valid anymore.

[0188] In a preferred embodiment of the system, software at the clientmachine, namely the digital coupon book is used to verify that the dateof the end of validity of the digital coupon has not been exceeded.

[0189] If the date of validity is not correct, a warning message is sentback to the user and the corresponding digital coupon is sent to thetrash.

[0190] In the case where the Manufacturer is also a Retailer, only oneURL will be available for redemption. However, if the Manufacturer isdistinct from the Retailer, and several Retailers have been selected whoall accept the corresponding digital coupon, then the user has to selecta URL corresponding to its Retailer of choice.

[0191] From this information, the Digital Coupon Book creates an HTMLpage containing a form to be sent back to the redeem URL. This formcontains the unencoded data part of the Digital Coupon, as well as theuser's member Identifier.

[0192] Session information on the client side can be derived from aCookie or from a Session ID that is kept within hidden fields of a formor inside the URL used to access a merchant Web site.

[0193] If the user is in the middle of a communication session with themerchant, then session identification is associated with the user. Thisinformation is then included in the form as well.

[0194] All fields of the form are “hidden”, i.e., they are not directlyvisible on the display of the HTML page.

[0195] In a preferred embodiment, this form is launched automaticallyusing Javascript, or any other client application language. If theInternet user has disabled all client application language, he will haveto manually validate the form by clicking a button. The form is sent tothe selected redemption URL along with the user's Member Identifier, andsession information.

[0196] Once the form has been sent, the digital coupon file on theuser's file is moved to a specific directory where redeemed digitalcoupons are stored.

[0197] In our preferred embodiment, this coupon is not removed from thesystem, although if it is valid and the buying process ends upsuccessfully, it may not be valid anymore.

[0198] The redeem URL calls the MS-Session Manager application on theMerchant system which is interfaced both to the Merchant serverapplication and the digital coupon server.

[0199] A method is included that allows the MS-Session to undecode thedata part of the digital coupon, and update the user's sessioninformation on the merchant server, whether this information is storedin a file, on a database server, or in the merchant server's memory.

[0200] The MS-Session Manager also acts as a proxy for the digitalcoupon server. The MS-Session Manager first examines the digital couponserial number. If this digital coupon is “serialized”, then it queriesits own hash table to know whether a digital coupon with the samedigital number has already been redeemed. If this is the case, an errormessage is sent back to the user through an HTML page. Otherwise, anentry with this serial number is written to the hash table.

[0201] If the serial number is valid for redemption, a Corba session isopened from the MS-Session Manager to the Digital Coupon Server and thewhole data part along with the user's Member Identifier is sent to theDigital Coupon Server.

[0202] The Digital Coupon Server starts by making verifications aboutthe date of start and end of validity concerning the digital coupon. Ifthe current date does not fit within these two dates, an error messageis sent back through the Corba session, and displayed by the MS-SessionManager.

[0203] If the date is still valid, the Digital Coupon Server looks atthe SNTemplate which is part of the digital coupon serial number. If thedigital coupon has been created by this Retailer (i.e., this Retailer isalso the Manufacturer of the digital coupon), then verification takesplace using the own templates database of the eKoopon Server.

[0204] Otherwise, verification takes place using templates informationgiven by the Manufacturer. Such information includes the template'spublic key which is mandatory to verify the digital coupon structure.

[0205] In this embodiment of the solution, it is mandatory that allnecessary information regarding the digital coupon template be includedin the database of the digital coupon server. Although it would bepossible for each digital coupon verification to query the remotedatabase of the original manufacturer, such action would not bepractically possible, considering the speed requirements due to the realtime constraints associated with the redemption process.

[0206] If the information extracted from the local database systemhappens to be missing or is incomplete, an error message is sent back tothe MS-Session Manager, advising the Internet user that this Retailersite is not ready to accept the digital coupon created by the specificManufacturer.

[0207] The verification process includes a step to make sure that themaximum number of available digital coupons for redemption has not beenreached. If the maximum number of digital coupons for this specifictemplate has already been reached, an appropriate error message is sentback to the MS-Session Manager, and the status flag is set accordinglyfor the template in the database.

[0208] It includes a step to verify that the status of a specificdigital coupon template allows the redemption process to take place. If,for any reason, the redemption process has been forbidden by theMerchant Server administrator or made invalid by any other verificationprocess, an appropriate error message is sent back to MS-SessionManager.

[0209] It includes a step to make sure that the digital coupon serialnumber is not in a Locked or Released position. If the Digital Couponhas been in a Lock state for more than 30 minutes without a change ofstate, it goes back to Verification state again. Otherwise, anappropriate error message is sent back to the MS-Session Manager.

[0210] It includes a step to make sure that the same digital coupon isnot verified several times by the same IP address if the digital couponpolicy forbids this.

[0211] It includes a step to verify the digital signature of the digitalcoupon. The public key embedded in the coupon data is matched againstthe public key in the coupon data. This key is then used to decrypt thedigital signature and compare it to the hash resulting from the datapart of the digital coupon.

[0212] If all these steps are performed successfully, the digital coupongoes into a “locked” state: the digital coupon server waits forredemption confirmation from the MS-Session Manager. The database forthe digital coupon is updated.

[0213] If the coupon has been created by a digital coupon server from aspecific Manufacturer, it is mandatory to lock the coupon on the systemso that two different retailers cannot lock the same digital coupontwice.

[0214] In this embodiment, a query for locking is sent to theManufacturer digital coupon server containing information to be kept inthe database including the Member Identifier of the person who redeemsthe coupon.

[0215] The Manufacturer digital coupon server updates the information inits redemption database and sends back to the Retailer digital couponserver the confirmation that the digital coupon server has been lockedor a signal that it cannot be locked (for a reason such as the fact thatit as already been successfully redeemed by another retailer).

[0216] Once locked, the digital coupon server sends a validation messageto the MS-Session Manager, which in turns computes the discount throughthe set of rules contained in the Discount Rules. The “discount rules”is an extensible set of coded specifications that specify what sort ofreductions are embedded in the Digital Coupon and how they should beexpressed corresponding to the present situation.

[0217] The updated price, taking the Discount Rules into considerationis written back to the session mechanism in use through the merchantsite.

[0218] A digital coupon will be considered locked as long as the buyoutsession has not been completed or that a given timeout has not expired,which leaves the Internet buyer enough time to continue shopping on themerchant Web site.

[0219] This timeout may be specified on a per template basis by theMerchant Administrator during the creation of the template. If thetimeout expires, and the digital coupon has not been redeemed, it goesback to a state where it is available.

[0220] A digital coupon is considered redeemed once the buyout sessionhas been completely achieved, which usually involves transmission by theInternet user of banking information.

[0221] Some specific Web sites, such as Amazon allow a transaction totake place without transmission of banking information through, forexample, the “One-Click” shopping process.

[0222] Once the buyout process is completed from both the merchant anduser's point of view, a call to the URL of the MS-Session Manager ismade generally through the use of an HTML page.

[0223] The Session Manager then updates the digital coupon server withinformation regarding the buyout process.

[0224] Information collected by the Digital Coupon Server during thisconfirmation step includes but is not limited to the amount of productsbought, the user's session identifier, and the user's IP address as wellas the current date and time.

[0225] All this information is stored in a database, to allow furtheranalysis by the Digital Coupon Manager.

[0226] Whether or not the digital coupon was redeemed successfully, ifthe Manufacturer digital coupon server is not the same as the Retailerdigital coupon server, then an update query has to take place on theManufacturer digital coupon server. A locked digital coupon will befreed again (if the timeout has expired). A digital coupon successfullyredeemed on the merchant Web site will be marked as redeemed on theManufacturer database.

[0227] Analysis of the Information by a Digital Coupon Manager

[0228] The Digital Coupon Manager includes functionality to analyze theCoupon Policy and make statistical reporting about the user's habits andbuying patterns.

[0229] A method is provided to correlate the information collectedduring the download and redemption process, especially the MembersIdentifiers, with information that members of the system specify whenthey register the use of their Digital Coupon Book.

[0230] The accumulation of information makes it possible to specifyusage of digital coupons by age, gender, marital status, occupation, andother statistical information, and to create the average statistics fora merchant web site for every digital coupon template.

1. A method of creating and signing digital representations of uniquelyidentified coupons for a plurality of users comprising: providing adigital coupon having a serial number, information about a manufacturer,a date of start of validity, a date of end of validity, specificlocation information for redemption, association with a product or arange of products, information about the product being discounted,discount rules including, but not limited to, amount, currency and typeof discount; and embedding a digital signature in the coupon.
 2. Themethod of claim 1, wherein the redemption information is a URI or arange of URI.
 3. The method of claim 1, wherein the digital coupon isdivided in two parts, a first part being digital coupon data containinginformation about the nature of the discount, and a second part being animage that can be displayed over the Internet, or through other media.4. The method of claim 1, wherein the digital coupon is divided into animage part and a data part, each part being protected by a digitalsignature using a hash algorithm and a public/private key pair, andwherein the digital signature is embedded in the data part.
 5. Themethod of claim 1, wherein discount information is associated with aproduct, a range of products, or whole contents of a shopping cartgenerated by a customer.
 6. The method of claim 1, wherein discountinformation is expressed inside an independent structure of the datacontained in the digital coupon.
 7. The method of claim 1, whereindiscount amount and type may be dependent on various parameters such asdigital coupon lifespan.
 8. A method of distributing Digital Couponsover the Internet or over any network using a client and servermechanism comprising: generating a coupon file; signing the digitalcoupon file; and sending the digital coupon to a selected recipientthrough an Internet protocol.
 9. The method of claim 8, wherein digitalsignature of the coupon takes place in real time, as coupons arerequested from the recipient.
 10. The method of claim 8, wherein digitalcoupons are created, digitally signed and stored as files in advance ona digital coupon server.
 11. The method of claim 8, wherein a serversends back to the recipient information for registration of the digitalcoupon download.
 12. The method of claim 11, wherein the protocol in usefor communication between the recipient and the server is HTTP.
 13. Themethod of claim 8, wherein a template for the digital coupons ispropagated to another digital coupon server Retailer authorized to makereductions by a digital coupon Manufacturer.
 14. The method of claim 11,wherein the protocol in use for communication between the recipient andthe server is SSL over HTTP.
 15. The method of claim 8, wherein a serverapplication embodies information provided by a user such as a passwordto allow verification of the user's claimed ownership of the DigitalCoupon at redemption.
 16. The method of claim 8, wherein each recipientapplication is uniquely identified.
 17. The method of claim 8, whereinthe recipient receiving the Digital Coupons is a browser used tonavigate on the Internet.
 18. The method of claim 8, wherein DigitalCoupons are distributed through a banner ad.
 19. The method of claim 8,wherein Digital Coupons are moved using floppy disks or any other kindof information medium, independently of any interaction with a serverused for creation.
 20. A method for a user to verify integrity andvalidity of a selected Digital Coupon at any selected time comprising:presenting to a server responsible for Digital Coupon informationrelevant to price reduction; obtaining a confirmation of validity;generating an error message; and sending the error message to therecipient if the Digital Coupon is not valid.
 21. The method of claim20, where an authentication takes place between the recipient and theserver, to verify that the server really is who it claims to be.
 22. Themethod of claim 20, where an entity that accepts the digital coupon isnot the same as an entity that created it.
 23. A method for a user toredeem a Digital Coupon at a desired moment of a buying processcomprising: verifying by a coupon server validity of a specific coupon;storing information regarding said Digital Coupon in a database;subtracting a price of an item being ordered from the discount specifiedin the Digital Coupon; and generating an order regarding the purchasemade by the user.
 24. The method of claim 23, wherein coupon redemptionoccurs at the beginning of a transaction or after a purchase order hasbeen made.
 25. The method of claim 23, wherein redemption information ispropagated to a manufacturer of the Digital Coupon using CORBA.
 26. Themethod of claim 23, wherein the user redeeming a Digital Coupon isuniquely identified.